/*
 * Copyright (C), 2002-2017, 你的兔宝宝电子商务有限公司
 * FileName: BaseSqlDialect.java
 * Author:   你的兔宝宝
 * Date:     2017-12-15 上午11:15:35
 * Description: 基础实现的sql方言//模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.baby.demo.utils.dal.dialects;

import com.baby.demo.utils.Strings;

/**
 * 基础实现的sql方言<br> 
 * 〈功能详细描述〉
 *
 * @author 你的兔宝宝
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public class BaseSqlDialect implements SqlDialect{
    
    /**
     * 分页sql模板0.sourceSql,1.offset,2pagesize,3page
     */
    String page_sql_tpl = "{0} limit {1},{2}";
    /**
     * 查询总数模板0.sourceSql
     */
    String count_sql_tpl = "select count(1) as total from({0}) as tt";
    
    @Override
    public String makeCountSql(String sourceSql) {
        return Strings.format(count_sql_tpl, sourceSql);
    }

    @Override
    public String makePageSql(int page, int pagesize, String sourceSql) {
        int offset = page * pagesize;
        return Strings.format(page_sql_tpl, sourceSql,offset,pagesize,page);
    }

    /**
     * @return the count_sql_tpl
     */
    public String getCount_sql_tpl() {
        return count_sql_tpl;
    }

    /**
     * @param count_sql_tpl the count_sql_tpl to set
     */
    public void setCount_sql_tpl(String count_sql_tpl) {
        this.count_sql_tpl = count_sql_tpl;
    }

    /**
     * @return the page_sql_tpl
     */
    public String getPage_sql_tpl() {
        return page_sql_tpl;
    }

    /**
     * @param page_sql_tpl the page_sql_tpl to set
     */
    public void setPage_sql_tpl(String page_sql_tpl) {
        this.page_sql_tpl = page_sql_tpl;
    }
    
}
